#pragma once

#ifdef VOLUME_CHART_EXPORTS
#define VOLUME_API __declspec(dllexport)
#else
#define VOLUME_API __declspec(dllimport)
#endif

#include "imgui.h"
#include "stock_data_struct.h"
#include <vector>
#include <string>

// 导出的函数声明
extern "C" {
    // 初始化成交量图表
    VOLUME_API void initVolumeChart();

    // 设置K线数据
    VOLUME_API void setVolumeData(const std::vector<StockData>& data);

    // 设置日期范围
    VOLUME_API void setDateRangeVolume(const std::string& startDate, const std::string& endDate);

    // 绘制成交量图表
    VOLUME_API void drawVolumeChart(ImDrawList* drawList, ImVec2 pos, ImVec2 size);

    // 获取指定日期范围内的最大成交量
    VOLUME_API double getMaxVolume();

    // 获取指定日期范围内的最小成交量
    VOLUME_API double getMinVolume();

    // 获取指定日期范围内的平均成交量
    VOLUME_API double getAverageVolume();

    // 判断是放巨量洗盘
    VOLUME_API bool isLargeVolumeWashout();

    // 判断是巨量出货
    VOLUME_API bool isLargeVolumeSellout();
} 